@@ -78,3 +78,19 @@ def complement_code_audit(request):  | 
            ||
| 78 | 78 | 
                log.save()  | 
            
| 79 | 79 | 
                 | 
            
| 80 | 80 | 
                return response()  | 
            
| 81 | 
                +  | 
            |
| 82 | 
                +  | 
            |
| 83 | 
                +@transaction.atomic  | 
            |
| 84 | 
                +def complement_code_contacted(request):  | 
            |
| 85 | 
                +    log_id = request.POST.get('log_id', '')
               | 
            |
| 86 | 
                +    is_contacted = int(request.POST.get('is_contacted', 0))  # 0 未联系, 1 已联系
               | 
            |
| 87 | 
                +  | 
            |
| 88 | 
                + try:  | 
            |
| 89 | 
                + log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True)  | 
            |
| 90 | 
                + except ComplementCodeLogInfo.DoesNotExist:  | 
            |
| 91 | 
                + return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND)  | 
            |
| 92 | 
                +  | 
            |
| 93 | 
                + log.is_contacted = is_contacted  | 
            |
| 94 | 
                + log.save()  | 
            |
| 95 | 
                +  | 
            |
| 96 | 
                + return response()  | 
            
                @@ -243,4 +243,5 @@ urlpatterns += [  | 
            ||
| 243 | 243 | 
                url(r'^complement/code$', complement_views.complement_code, name='complement_code'),  | 
            
| 244 | 244 | 
                url(r'^complement/code/list$', complement_views.complement_code_list, name='complement_code_list'),  | 
            
| 245 | 245 | 
                url(r'^complement/code/audit$', complement_views.complement_code_audit, name='complement_code_audit'),  | 
            
| 246 | 
                + url(r'^complement/code/contacted$', complement_views.complement_code_contacted, name='complement_code_contacted'),  | 
            |
| 246 | 247 | 
                ]  | 
            
                @@ -143,6 +143,8 @@ class ComplementCodeLogInfo(BaseModelMixin):  | 
            ||
| 143 | 143 | 
                 | 
            
| 144 | 144 | 
                audit_status = models.IntegerField(_(u'audit_status'), choices=AUDIT_STATUS_TUPLE, default=AUDIT_TODO, help_text=u'审核状态')  | 
            
| 145 | 145 | 
                 | 
            
| 146 | 
                + is_contacted = models.BooleanField(_(u'is_contacted'), default=False, help_text=u'是否已联系用户')  | 
            |
| 147 | 
                +  | 
            |
| 146 | 148 | 
                class Meta:  | 
            
| 147 | 149 | 
                verbose_name = _(u'补码记录')  | 
            
| 148 | 150 | 
                verbose_name_plural = _(u'补码记录')  | 
            
                @@ -173,4 +175,5 @@ class ComplementCodeLogInfo(BaseModelMixin):  | 
            ||
| 173 | 175 | 
                'invoice_image': self.invoice_image,  | 
            
| 174 | 176 | 
                'invoice_image_url': self.invoice_image_url,  | 
            
| 175 | 177 | 
                'audit_status': self.audit_status,  | 
            
| 178 | 
                + 'is_contacted': self.is_contacted,  | 
            |
| 176 | 179 | 
                }  |